Computer systems are composed of one or more central processing units (CPUs), a bus or other interconnect fabric, memory controllers, and input/output (I/O) adapters. These resources are subject to contention; and management of that contention is necessary to optimize performance. Specifically, “latency,” the delay between the initiation of an operation and its completion, and “bandwidth,” the aggregate volume of operations, are frequently traded against one another. CPU designs have thus attempted to reduce apparent latency by performing “speculative” operations, that is, operations initiated early before all information is present as to the necessity or specific parameters of the operation. Prefetching and branch prediction are examples of this speculation. Such speculation may either be explicit, under control of program instructions, or implicit, via automatic operation of the CPU logic. These speculative operations increase demand on available bandwidth. If the excess demand is too great, unbalanced system operation due to resource contention (“hotspots”) could result, perhaps to the point of reducing overall system performance to below the point that would have been obtained had speculation not occurred. Thus, there is the need for system-wide management of speculative transactions.
One problem with prefetching in the prior art is that much of the data read through speculation is not actually used. That is, a speculative read may issue even though the requester is not assured that the data will be executed or the subject of a load. Prior art CPUs and chip-sets nevertheless treat speculative memory traffic and non-speculative memory traffic the same, even though speculative data may cause congestion and memory latency for non-speculative requests. This problem is exacerbated with high bus utilization; for example, it has been shown that speculative traffic may account for 50% or more of bus traffic.
It is, accordingly, one object of the invention to provide methods and systems for processing speculative requests in a way to reduce congestion and collisions with non-speculative traffic. Other objects of the invention are apparent within the description that follows.